package com.lyj.io.module.sys.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.lyj.io.module.sys.entity.SysMenu;
import com.lyj.io.module.sys.entity.SysPermission;

import java.util.List;

/**
 * 菜单接口
 * @author: 李亚杰
 * @version: 1.0
 * @date: 2021/9/13 15:27
 */
public interface SysMenuService extends IService<SysMenu> {

    /**
     * 获取用户菜单列表
     *
     * @param userId
     * @return java.util.List<com.ancient.auth.entity.SysMenu>
     * @author: liyajie
     * @date: 2021/9/13 17:13
     * @exception:
     * @update:
     * @updatePerson:
     **/
    List<SysMenu> getUserMenuList(String userId);

    /**
     * 根据父菜单，查询子菜单
     *
     * @param parentId-父菜单ID
     * @param menuIdList-用户菜单ID
     * @return java.util.List<com.ancient.auth.entity.SysMenu>
     * @author: liyajie
     * @date: 2021/9/13 17:25
     * @exception:
     * @update:
     * @updatePerson:
     **/
    List<SysMenu> queryListParentId(String parentId, List<String> menuIdList);

    /**
     * 根据父菜单，查询子菜单
     * @param parentId-父菜单ID
     * @return java.util.List<com.ancient.auth.entity.SysMenu>
     * @author: liyajie
     * @date: 2021/9/13 17:28
     * @exception:
     * @update:
     * @updatePerson:
     **/
    List<SysMenu> queryListParentId(String parentId);

    /**
     * 菜单授权
     * @param sysPermission
     * @return java.util.List<com.ancient.auth.entity.SysMenu>
     * @author: liyajie
     * @date: 2021/9/13 17:28
     * @exception:
     * @update:
     * @updatePerson:
     **/
    void grantMenuToRole(SysPermission sysPermission);

    /**
     * 删除菜单
     * @param menuIds-菜单ids
     * @return java.util.List<java.lang.String>
     * @author: liyajie
     * @date: 2021/9/13 17:19
     * @exception:
     * @update:
     * @updatePerson:
     **/
    void removeByIds(List<String> menuIds);
}
